package detallecarroejb;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import entidades.DetalleCarro;

/**
 * Session Bean implementation class DetCarroEJB
 */
@Stateless (name = "DCEJB", mappedName = "DCEJB")
public class DetCarroEJB implements DetCarroEJBRemote {

    @PersistenceContext (unitName = "JPATINET")
    private EntityManager EM;
    
    /**
     * Default constructor. 
     */
    public DetCarroEJB() {
        
    }

    /* (non-Javadoc)
     * @see detallecarroejb.DetCarroEJBRemote#AddDetCarro(entidades.DetalleCarro)
     */
    public void AddDetCarro(DetalleCarro dc) {
       EM.persist(dc);
        
    }

    /* (non-Javadoc)
     * @see detallecarroejb.DetCarroEJBRemote#DelDetCarro(entidades.DetalleCarro)
     */
    public void DelDetCarro(DetalleCarro dc) {
        DetalleCarro delDC = EM.find(DetalleCarro.class, dc);
        EM.remove(delDC);
    }

    /* (non-Javadoc)
     * @see detallecarroejb.DetCarroEJBRemote#ListarDetCarro()
     */
    public List<DetalleCarro> ListarDetCarro() {
        Query q = EM.createQuery("Select dc from DetalleCarro dc");
        @SuppressWarnings("unchecked")
        List<DetalleCarro> listDC = (List<DetalleCarro>)q.getResultList();
        return listDC;
    }

    /* (non-Javadoc)
     * @see detallecarroejb.DetCarroEJBRemote#AddItemCarro(entidades.DetalleCarro)
     */
    public void AddItemCarro(DetalleCarro dc) {
        // TODO Auto-generated method stub
        DetalleCarro modDC = EM.find(DetalleCarro.class, dc);
        modDC.setCantidad(modDC.getCantidad()+1);
    }

    /* (non-Javadoc)
     * @see detallecarroejb.DetCarroEJBRemote#RemoveItemCarro(entidades.DetalleCarro)
     */
    public void RemoveItemCarro(DetalleCarro dc) {
        // TODO Auto-generated method stub
        DetalleCarro modDC = EM.find(DetalleCarro.class, dc);
        if (modDC.getCantidad()>1){
            modDC.setCantidad(modDC.getCantidad()-1);
        } else {
            EM.remove(modDC);
        }
        
    }

}
